Welcome to pandas!

3.4 数据运算时对齐特性

两个Series,或者两个DataFrame在做运算时,是具有对齐性,也就是它们的运算不是按位置对齐运算,而是按索引对齐运算的。


import pandas as pd,numpy as np

path1 = r "D:\Pyobject2023\object\测试\测试素材.考试成绩1月.xlsx"

path2 = r "D:\Pyobject2023\object\测试\测试素材.考试成绩2月.xlsx"

df1 = pd.read_excel(path1, index_col =0)

df2 = pd.read_excel(path2, index_col =0 )

t=df1+df2

print (df1)

print (df2)

print (t)

返回:

数学
姓名
小明 85.5
小张 89.0
小四 99.0
小曾 100.0

数学
姓名
麻子 85.5
小张 89.0
小四 99.0
小曾 100.0

数学
姓名
小四 198.0
小张 178.0
小明 NaN
小曾 200.0
麻子 NaN

import pandas as pd,numpy as np

path1 = r "D:\Pyobject2023\object\测试\测试素材.考试成绩1月.xlsx"

path2 = r "D:\Pyobject2023\object\测试\测试素材.考试成绩2月.xlsx"

df1 = pd.read_excel(path1, index_col =0)

df2 = pd.read_excel(path2, index_col =0)

df3=df1.add(df2,fill_value=0) # 缺失值填充为0

print (df1)

print (df2)

print (df3)

返回:

数学
姓名
小明 85.5
小张 89.0
小四 99.0
小曾 100.0

数学
姓名
麻子 85.5
小张 89.0
小四 99.0
小曾 100.0

数学
姓名
小四 198.0
小张 178.0
小明 85.5
小曾 200.0
麻子 85.5

两个表列数据位置不一样,行位置不一样

import pandas as pd,numpy as np

path1 = r "D:\Pyobject2023\object\测试\测试素材.考试成绩1月.xlsx"

path2 = r "D:\Pyobject2023\object\测试\测试素材.考试成绩2月.xlsx"

df1 = pd.read_excel(path1, index_col =0)

df2 = pd.read_excel(path2, index_col =0)

df3=df1.add(df2,fill_value=0) # 缺失值填充为0

print (df1)

print (df2)

print (df3)

返回:

语文 数学
姓名
小明 90 85.5
小张 67 89.0
小四 65 99.0
小曾 23 100.0

数学 语文
姓名
麻子 85.5 85
小张 89.0 76
小四 99.0 77
小曾 100.0 55

数学 语文
姓名
小四 198.0 142.0
小张 178.0 143.0
小明 85.5 90.0
小曾 200.0 78.0
麻子 85.5 85.0